The term "object based system" is used to mean a system comprising several software components or "objects".
A software object has its own data and associated methods. Objects intercommunicate by sending "messages", i.e., data, instructions, requests, etc, to one another, normally via object management software. An object is initially a data file stored on disc. If object management software wishes to pass a message to it, a process will be initiated which reads the data file as part of its initialization. If an object is fully defined by its disc file and has no process associated with it, it is said to be "inactive". If an object has a process associated with it and is defined by the state of that process then it is said to be "active".
Generally, an object can be regarded as a discrete entity, e.g., it can individually be moved, copied, destroyed, etc.
In this context, in the embodiment to be described, an object is something which has a unique identifier and which can be sent a message.
The term "link" can have several different meanings in relation to objects in an object based system and an introduction to some of the possible meanings follows More will be said about "containership links", other interobject links and "window links" in the specific description with reference to the drawings.
When designing an object based system, as an optimization feature it is possible to define a hierarchical classification system of class objects in which class objects lower down the hierarchy (sub-classes) "inherit" characteristics from their superclasses. An example from the field of biology is shown in FIG. 1a.
The Class Object Animals has certain data and methods associated with it which are generic to all Animal Objects. Its sub-classes, Class Object Vertebrates and Class Object Invertebrates inherit the characteristics of their superclass Animals and, in addition, each contains extra data and/or methods specific to their class and so on down the classification tree. Each of the links in FIG. 1a is an "AKO" (a kind of) link, e.g., a Mammal is a kind of vertebrate and a primate is a kind of mammal.
When it is desired to create an instance of a class, e.g., a particular Kangaroo called Hoppy, this can be done by taking a copy of a Kangaroo Class Object and specifying Hoppy's characteristics of interest, e.g., height, weight or whatever. The Hoppy Object has an "ISA" (is a) link to the Kangaroo Class Object.
Such a system reduces the amount of code needing to be written for new objects since objects automatically use generic code of superclasses (AKO Links) and relevant Class Objects (ISA Links).
As well as ISA and AKO links there may be other kinds of object links designed into a system. One known type of link is a containership link (sometimes referred to as a "parentage" or "ownership" link) which largely determines the location of an object and there need to be rules governing what happens to an object when its container is moved, copied, destroyed, etc. It is with such further types of links that the present application is concerned rather than the basic AKO and ISA links mentioned above which may be inherent in the system design.
In the embodiment to be described, these further links are bidirectional, i.e., both of the objects involved have a record of the link.
Yet another type of link is that between an object and a window viewing that object--a "window link".
Furthermore, windows may also be objects and have inter object links with other windows.
In this specification, when there is a risk of confusion between window objects and other objects the latter will be termed "semantic objects". Generally, however, the term "object" means "semantic object".
As used herein, a "semantic object" or a "semantic part" of an object is an object or object part which has stored data and which is, by virtue of the stored data, persistent. A "presentation object" or "presentation part" is utilized to present to a user the data of a semantic object or semantic object part and has no persistence in the system on termination of the user session.
The term "click" will be used in this specification to denote a selection made by the user using an input device, such as a mouse.
A storage domain may be regarded as closely equivalent to a storage medium such as a hard disc or floppy disc in the sense that all objects in a given storage domain are on-line together or are off-line together. Consequently, a single machine may support a plurality of storage domains.